home *** CD-ROM | disk | FTP | other *** search
/ Enciclopedia Del Perro / Enciclopedia Del Perro.iso / info31 / cconv.st_ / cconv.st
Text File  |  1995-08-09  |  7KB  |  256 lines

  1. :(o,,**************************************************************************
  2.  
  3. CCONV.STP  TRAC Script to Convert COMSCRPT Scripts to SLANG Scripts
  4.              -- written 30-Mar-1994 by Craig Lennox
  5.  
  6. ******************************************************************************)
  7.  
  8. :(s,c.)
  9. :(mm,c.Version,3.00            <* Version String for Converter *> )
  10. :(mm,c.lp,:(bxo,28)            <* left paren  *>                  )
  11. :(mm,c.rp,:(bxo,29)            <* right paren *>                  )
  12. :(s,c.crstr,:(bxo,28)cr:(bxo,29))
  13. :(s,c.lfstr,:(bxo,28)lf:(bxo,29))
  14. :(s,c.tabstr,:(bxo,9))
  15. :(mm,c.nl,(
  16. )                    <* New Line String *>              )
  17.  
  18. :(s,c.names,(pause,send,changemode,poll,;))
  19. :(mm,c.actions,(
  20.   (                            <* pause       *>
  21.     :(s,c.outstr,:(ri,c.pause))
  22.   ),(                            <* send           *>
  23.     :(s,c.outstr,:(ri,c.send))
  24.   ),(                                                   <* changemode      *>
  25.     :(s,c.outstr,:(ri,c.changemode))
  26.   ),(                            <* poll           *>
  27.     :(s,c.outstr,
  28.         :(r,c.lp)
  29.     (poll, )
  30.         :(s,c.arg,:(tn,c.instr,1))
  31.         :(ei,:(r,c.arg),,
  32.         (:(s,c.warning,
  33.           (invalid poll command: no layer specified)
  34.          )
  35.          :(s,c.outstr,)
  36.         )
  37.     ,
  38.         (:(ei,:(r,c.arg),p,
  39.           ((physical, )
  40.            :(tsd,c.instr,,( ))
  41.            :(s,c.arg,:(tn,c.instr,1))
  42.           )
  43.          ,
  44.           (:(ei,:(r,c.arg),l,
  45.             ((lcp, )
  46.              :(tsd,c.instr,,( ))
  47.              :(s,c.arg,:(tn,c.instr,1))
  48.             )
  49.            ,
  50.             (:(ei,:(r,c.arg),i,
  51.           ((ipcp, )
  52.            :(tsd,c.instr,,( ))
  53.            :(s,c.arg,:(tn,c.instr,1))
  54.           )
  55.          ,
  56.           (:(s,c.warning,
  57.             (invalid layer: specify physical, lcp or ipcp)
  58.            )
  59.            :(s,c.outstr,)
  60.            :(s,c.arg,( ))
  61.           )
  62.          ))
  63.            ))
  64.          ))
  65.     )
  66.       :(ei,:(r,c.arg),,(:(s,c.warning,
  67.         ( invalid poll command: need to specify open or closed ))
  68.           :(s,c.outstr,)),
  69.         (:(ei,:(r,c.arg),o,open,
  70.         (:(ei,:(r,c.arg),c,closed,
  71.         (:(ei,:(r,c.arg),( ),,
  72.         (:(s,c.warning,
  73.           (invalid poll command: need to specify open or closed))
  74.         :(s,c.outstr,)))))))))
  75.       :(r,c.rp))
  76.   ),(                            <* comment    *>
  77.     :(s,c.thisisacomment,yup)
  78.     :(s,c.outstr,:(r,c.lp)(comment, {):(ts,c.instr,,)}:(r,c.rp):(r,c.nl))
  79.   )
  80. ))
  81.  
  82. :(mm,c.which?,(
  83.     :(ms,<1>,<2>)
  84.     :(mw,<1>)
  85.     :(ri,<1>,<3>)
  86. ))
  87.  
  88. :(mm,##,(
  89.   :(pc,(
  90.     :(fo1,<1>,(:(o,(Can't open comscrpt file "<1>", aborting conversion.)):(px)))
  91.     :(fg2,<2>)
  92.     :(ri,pp.out,:(ri,c.banner,<1p>,<2p>))            <* DEBUG    *>
  93.     :(pc,(
  94.     :(d,c.warning,c.comment,c.outstr)
  95.     :(s,c.instr,:(fr1,(
  96. ),,(:(px))))
  97.     :(tra,c.instr,:(tca,11),( ))
  98.     :(s,c.op,:(ts,c.instr,,( )))
  99.     :(s,c.tmpop,:(r,c.op))
  100.         :(ri,c.which?,c.tmpop,:(r,c.names),:(r,c.actions))
  101.         :(mhi,c.thisisacomment,
  102.           (
  103.             :(ri,pp.out,:(r,c.outstr))
  104.             :(d,c.thisisacomment)
  105.           ),
  106.           (
  107.             :(ri,pp.doline,:(r,c.outstr),:(r,c.instr),:(r,c.warning))
  108.           ))
  109.     ),(-1),)
  110.   ),1)
  111.   :(fc):(fc2)
  112. ))
  113.  
  114. :(mm,c.mkcomment,(
  115.     :(bxo,3c)*<2p><1p><2p>*>(
  116. )))
  117.  
  118. :(mm,c.banner,(
  119.     :(ri,c.mkcomment,
  120. (************************** language=slang ***********************************
  121. *
  122. *  This File Converted From COMSCRPT Script Language TO SLANG Script Language
  123. *
  124. *  COMSCRPT (source) file:    <1p>
  125. *  SLANG (destination) file:  <2p>
  126. *  Conversion done on:        ):(xcf)(
  127. *  Converter Version:         v):(r,c.Version)(
  128. *
  129. ******************************************************************************))))
  130.  
  131. :(mm,c.mkstmt,(
  132.     :(r,c.lp)<1p>:(r,c.rp)
  133. ))
  134.  
  135. :(mm,c.send,(
  136.         :(s,c.tmp,:(tpe,c.instr))
  137.     :(tra,c.tmp,(\r),}:(r,c.crstr){)
  138.     :(tra,c.tmp,(\n),}:(r,c.lfstr){)
  139.     :(tra,c.tmp,(\t),:(r,c.tabstr))
  140.     :(ri,c.mkstmt,(send, {):(r,c.tmp)})
  141. ))
  142.  
  143. :(mm,c.changemode,(
  144.     :(ri,c.mkstmt,
  145.         (changemode, )
  146.         :(s,c.arg,:(tn,c.instr,1))
  147.         :(ei,:(r,c.arg),,
  148.           (:(s,c.warning,
  149.                   (No argument to changemode, assuming "packet"))
  150.           )
  151.         )
  152.         :(e,:(r,c.arg),c,char,packet)
  153.     )
  154. ))
  155.  
  156. :(mm,c.pause,(
  157.     :(ri,c.mkstmt,
  158.     (pause, )
  159.     :(s,c.arg,:(ts,c.instr,,( )))
  160.     :(ei,:(r,c.arg),,
  161.         (1000:(s,c.warning,                <* no argument       *>
  162.         (No argument to pause, using 1 second)))
  163.     ,
  164.         (:(r,c.arg):(e,:(tn,c.instr,1),m,,000,))    <* there is an arg *>
  165.     )
  166.     )
  167. ))
  168.  
  169. :(o,,**************************************************************************
  170.  
  171. included from:
  172. PP.STP  pretty print routines.
  173.         -clennox, 30-Mar-1994
  174.  
  175. ******************************************************************************)
  176.  
  177. :(s,pp.)
  178. :(o,,
  179.     <* pp - pretty print a line of text in columns. *>
  180.  )
  181.  
  182. :(mm,pp.lc,                            <* left comment bracket     *>
  183.  (  :(bxo,3c)(* ))
  184. )
  185. :(mm,pp.rc,                            <* right comment bracket    *>
  186.  ((*):(bxo,3e)))
  187.  
  188. :(mm,pp.sp,                            <* spaces                   *>
  189.  (  :(agi,<1>,0,
  190.      (  :(pc,(( )),<1>,,)))))
  191.  
  192. :(mm,pp.nl,                            <* newline                  *>
  193.  ((
  194. )))
  195.  
  196. :(s,pp.cw,24)                    :(o,, <* comment width            *>  )
  197. :(s,pp.col3,50)                  :(o,, <* start of column three    *>  )
  198. :(s,pp.col2,21)                  :(o,, <* start of column two      *>  )
  199. :(s,pp.ecol2,:(as,:(r,pp.col3),1)) 
  200.                                  :(o,, <* end of column two        *>  )
  201.  
  202. :(mm,pp.c,                             <* commentize               *>
  203.  (  :(s,pp.x1,<1p>)
  204.     :(s,pp.x2,:(tl,pp.x1))
  205.     :(s,pp.x1,:(tn,pp.x1,:(r,pp.x2),))
  206.     :(s,pp.x2,:(as,:(r,pp.cw),:(r,pp.x2)))
  207.     :(s,pp.x3,:(agi,:(r,pp.x2),0,(:(pc,(( )),:(r,pp.x2),,),,)))
  208.     :(ri,pp.lc):(r,pp.x1):(r,pp.x3):(ri,pp.rc))
  209. )
  210.  
  211. :(mm,pp.pp,                            <* pretty print             *>
  212.  (  :(s,pp.in,<1p>)                    <* save incoming to a var   *>
  213.     :(ei,:(r,pp.in),,(:(ri,pp.out,:(ri,pp.nl))),
  214.      (
  215.     :(s,pp.line,)
  216.     :(pc,
  217.      (  :(s,pp.tmp,:(ts,pp.in,,( ),(:(px))))  <* get next word     *>
  218.         :(agi,:(aa,:(tl,pp.line),:(tl,pp.tmp)),:(r,pp.cw),
  219.          (  :(ri,pp.out,:(ri,pp.c,:(r,pp.line)):(ri,pp.nl):(ri,pp.sp,:(r,pp.col3)))
  220.         :(s,pp.line,)
  221.          ),,)
  222.         :(s,pp.line,:(r,pp.line):(r,pp.tmp)( ))
  223.      ),-1,,)
  224.     :(ei,pp.line,,,(:(ri,pp.out,:(ri,pp.c,:(r,pp.line)):(ri,pp.nl))))
  225.      ))
  226. ))
  227.  
  228. :(mm,pp.out,
  229.  (  :(fw2,<1p>)))
  230.  
  231. :(mm,pp.doline,
  232.  (  :(s,pp.part1,<1p>(  ))
  233.     :(s,pp.part2,<2p>( ))
  234.     :(s,pp.part3,<3p>)
  235.     :(ri,pp.out,:(ri,pp.nl):(r,pp.part1))
  236.     :(s,pp.cp,:(tl,pp.part1))
  237.     :(agi,:(tl,pp.part2),:(r,pp.ecol2),
  238.      (  :(ri,pp.out,:(ri,pp.nl):(ri,pp.sp,8):(ri,pp.c,:(r,pp.part2))
  239.             :(ri,pp.nl))
  240.         :(s,pp.cp,0)
  241.      ),
  242.      (  :(ri,pp.out,:(ri,pp.nl):(ri,pp.sp,8):(ri,pp.c,:(r,pp.part2))
  243.         :(ri,pp.nl))
  244.         :(s,pp.cp,0)
  245.      ),
  246.              (  :(s,pp.cp2,:(as,:(r,pp.ecol2),:(tl,pp.part2)))
  247.                 :(agi,:(r,pp.cp2),:(r,pp.col2),(:(s,pp.cp2,:(r,pp.col2))),,)
  248.                 :(agi,:(r,pp.cp),:(r,pp.cp2),
  249.                  (  :(ri,pp.out,:(ri,pp.nl))
  250.                     :(s,pp.cp,0)),,)
  251.                 :(ri,pp.out,:(ri,pp.sp,:(as,:(r,pp.cp2),:(r,pp.cp))))
  252.                 :(ri,pp.out,:(ri,pp.c,:(r,pp.part2)))
  253.      )       )
  254.     :(ri,pp.pp,:(r,pp.part3))
  255.  ))
  256.